package com.zrs.gmall.product.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.zrs.gmall.product.model.BaseAttrInfo;
import com.zrs.gmall.product.model.SkuInfo;

import java.math.BigDecimal;
import java.util.List;

/**
 * @author ZhaoRuiSheng
 * @create 2023/2/24 15:03
 */
public interface SkuManageService {

    /**
     * 保存商品SKU信息
     * @param skuInfo
     * @return
     */
    void saveSkuInfo(SkuInfo skuInfo);

    /**
     * 根据三级分类数据获取到skuInfo 列表
     * @param skuInfoPage
     * @param skuInfo
     * @return
     */
    IPage getSkuInfoPage(Page<SkuInfo> skuInfoPage, SkuInfo skuInfo);

    /**
     * 商品SKU上架
     * @param skuId
     * @return
     */
    void onSale(Long skuId);

    /**
     * 商品SKU下架
     * @param skuId
     * @return
     */
    void cancelSale(Long skuId);

    /**
     * 1、根据SkuID查询SKU商品信息包含图片列表
     * @param skuId
     * @return
     */
    SkuInfo getSkuInfoAndImages(Long skuId);

    /**
     * 根据SKUID查询商品最新价格
     * @param skuId
     * @return
     */
    BigDecimal getSkuPrice(Long skuId);

    /**
     * 5、根据SkuID查询当前商品包含平台属性以及属性值
     * @param skuId
     * @return
     */
    List<BaseAttrInfo> getAttrList(Long skuId);

    /**
     * 其实就是第六步的反向查询
     * 7、获取每一组销售属性对应SkuID组合 {"3736|3738":"24","3736|3739":"25",}
     * @param spuId
     * @return
     */
    String getSkuValueIdsMap(Long spuId);

}
